package main

import "fmt"

func outPutSubNum(num int) {
	if num > 0 {
		num--
		fmt.Printf("%d ", num)
		outPutSubNum(num)
	}
}

func intSum(num int) int {
	if num > 1 {
		return num + intSum(num-1)
	} else {
		return 1
	}
}

func step(x int) int {
	if x > 0 {
		return x * step(x-1)
	} else {
		return 1
	}
}

//函数的递归调用
func main() {
	//1、for循环实现1到100的和
	//sum := 0
	//for i := 0; i <= 100; i++ {
	//	sum += i
	//}
	//fmt.Println(sum)

	//2、传入1个整数，递归打印出1-到这个数之内的所有整数
	//outPutSubNum(10)

	//3、递归实现1-100的和
	//sum := intSum(100)
	//fmt.Println(sum)

	//4、递归实现5的阶乘
	num := step(10)
	fmt.Println(num)
}
